package ejb;

public class Condicional {

    private String atributo;
    private Object valor;
    private String operador = "=";

    public Condicional(String atributo, Object valor, String operador) {
        this.atributo = atributo;
        this.operador = operador;
        this.setValor(valor);
    }

    public Condicional(String atributo, Object valor) {
        this.atributo = atributo;
        this.setValor(valor);
    }

    public void setAtributo(String atributo) {
        this.atributo = atributo;
    }

    public final void setValor(Object valor) {
        if (valor != null) {
            valor = (operador.toLowerCase().trim().equals("like")) ? "%" + ((String) valor) + "%" : valor;
            operador = (operador.toLowerCase().trim().equals("like")) ? " LIKE " : operador;
            valor = (valor instanceof String) ? "'" + ((String) valor) + "'" : valor;
            valor = (valor.getClass().isEnum()) ? valor.getClass().getName()+"."+ valor.toString() : valor;
        }
        this.valor = valor;
    }

    public void setOperador(String operador) {
        this.operador = operador;
    }

    public String obtenerCondicional() {
        String resp = "x." + this.atributo + this.operador + this.valor.toString();
        return resp;
    }
}
